{	Problem: http://codeforces.ru/problemset/problem/85/A
	Verdict: Accepted
}
uses
        SysUtils, Math;

var
        n,i,j,cur,kk:longint;
        a:array[0..10,0..110] of longint;

procedure cr();
begin
cur:=cur mod 26+1;
end;

function check(i,j:longint):boolean;
begin
result:=false;
if (a[i-1][j]=cur) or (a[i][j-1]=cur) or (a[i][j+1]=cur) or (a[i+1][j]=cur) then result:=true;
end;

procedure put(i,j,x,y:longint);
begin
while check(i,j) or check(x,y) do cr();
a[i][j]:=cur;
a[x][y]:=cur;
end;
                
begin 
fillchar(a,sizeof(a),0); 
read(n);
if odd(n) then begin
        cur:=1;
        put(1,n,2,n);
        cur:=2;
        put(3,1,4,1);
        cur:=3;
        kk:=n-1;
        i:=1;
        while i<kk do begin
                put(1,i,1,i+1);
                cr();
                put(2,i,2,i+1);
                cr();
                inc(i,2);
        end;
        i:=2;
        while i<n do begin
                put(3,i,3,i+1);
                cr();
                put(4,i,4,i+1);
                inc(i,2);
                cr();
        end;
end else begin  
        cur:=1;
        put(3,1,4,1);
        cur:=2;
        put(3,n,4,n);
        cur:=3;
        i:=1;
        while i<n do begin
                put(1,i,1,i+1);
                cr();
                put(2,i,2,i+1);
                inc(i,2);
                cr();
        end;
        i:=2;
        kk:=n-1;
        while i<kk do begin
                put(3,i,3,i+1);
                cr();
                put(4,i,4,i+1);
                inc(i,2);
                cr();
        end;
end;
for i:=1 to 4 do begin
        for j:=1 to n do
                write(chr(a[i][j]+96));
        writeln;
end;
end.